package rbtree

import "hash/fnv"

func (rb *RBtree) RbTreeDel(key string) int {
	uniqueInt := StringToUniqueInt(key)
	return Del(rb, uniqueInt)
}

func (rb *RBtree) RbTreeGet(key string) any {
	uniqueInt := StringToUniqueInt(key)
	val := Find(rb, uniqueInt)
	return val
}

func (rb *RBtree) RbTreeSet(key string, val any) int {
	uniqueInt := StringToUniqueInt(key)
	node := NodeInit(uniqueInt, val)
	return Insert(rb, node)
}

func (rb *RBtree) RbTreeMod(key string, val any) any {
	uniqueInt := StringToUniqueInt(key)
	node := NodeInit(uniqueInt, val)
	mod := Mod(rb, node)
	return mod
}

func StringToUniqueInt(s string) uint32 {
	h := fnv.New32a()
	h.Write([]byte(s))
	return h.Sum32()
}
